package pro.shushi.pamirs.framework.orm.enmu;

import pro.shushi.pamirs.meta.annotation.Errors;
import pro.shushi.pamirs.meta.common.enmu.ExpBaseEnum;

@Errors(displayName = "系统ORM错误枚举")
public enum OrmExpEnumerate implements ExpBaseEnum {

    SYSTEM_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009000, "系统异常"),
    BASE_DATA_DUPLICATION_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009001, "数据重复，业务处理失败"),
    BASE_DATA_INSERT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009002, "数据创建失败，请稍后重试"),
    BASE_SAVE_CURRENT_FIRST_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009003, "请先保存当前模型实体数据"),
    BASE_COLUMN_TO_LNAME_PROCESSOR_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009004, "模型配置不存在"),
    BASE_CODE_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009005, "编码字段值为空"),
    BASE_ID_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009006, "ID字段值为空"),
    BASE_FIELD_CONFIG_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009007, "字段配置不存在"),
    BASE_CASCADE_UPDATE_FORBIDDEN_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009008, "不允许级联更新"),
    BASE_CASCADE_DELETE_FORBIDDEN_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009009, "不允许级联删除"),
    BASE_RELATION_FIELD_NUM_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009010, "请检查模型关系配置，关联字段值个数不一致"),
    BASE_RELATION_FIELD_NUM2_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009011, "请检查模型关系配置，关联字段和关系字段个数不一致"),
    BASE_RELATION_FIELD_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009012, "关系字段不存在"),
    BASE_RELATION_FIELD_IS_NOT_EXISTS2_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009013, "关联字段不存在"),
    BASE_RELATION_FIELD_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009014, "关系字段配置不存在"),
    BASE_ENUM_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009015, "枚举不存在"),
    BASE_ENUM_ITEM_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009016, "枚举项不存在"),
    BASE_LNAME_TO_COLUMN_MODEL_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009017, "模型配置不存在"),
    BASE_LNAME_TO_NAME_MODEL_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009018, "模型配置不存在"),
    BASE_NAME_TO_LNAME_MODEL_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009019, "模型配置不存在"),
    BASE_ENUM_IS_NOT_EXISTS2_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009020, "枚举不存在"),
    BASE_ENUM_ITEM_IS_NOT_EXISTS2_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009021, "枚举项不存在"),
    BASE_RELATION_FIELD_CONFLICT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009022, "关系字段值冲突"),
    BASE_REL_FIELD_CONFIG_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009023, "字段配置不存在"),
    BASE_DISTRIBUTION_FIELD_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009024, "需要配置关联模型的关联字段"),
    BASE_RELATION_FIELD_OR_REFERENCE_FIELD_NUM_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009025, "关系字段与关联字段个数不一致"),
    BASE_BASE64_DECODE_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009026, "编码失败"),
    BASE_RELATION_CONFIG_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009027, "关联关系配置错误"),
    BASE_TTYPE_IS_NOT_SUPPORT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009028, "不支持的类型"),
    BASE_MODULE_NOT_BOOT_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009029, "模型所在模块未在启动列表中"),
    BASE_OBJ_TO_XML_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009030, "XML生成错误"),
    BASE_OBJ_FROM_XML_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009031, "XML解析错误"),
    BASE_FIELD_CONVERTER_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009032, "字段转换错误"),
    BASE_RELATION_MODEL_IS_NOT_EXISTS_ERROR(ERROR_TYPE.SYSTEM_ERROR, 10009033, "关联字段模型不存在");

    private final ERROR_TYPE type;

    private final int code;

    private final String msg;

    OrmExpEnumerate(ERROR_TYPE type, int code, String msg) {
        this.type = type;
        this.code = code;
        this.msg = msg;
    }

    public ERROR_TYPE getType() {
        return type;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
